package org.jeecg.modules.xxgx.fjys.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.common.util.LoginUserUtil;
import org.jeecg.modules.xxgx.fjys.entity.CsXxCjmb;
import org.jeecg.modules.xxgx.fjys.entity.CsXxCjmbFjys;
import org.jeecg.modules.xxgx.fjys.entity.CsXxFjys;
import org.jeecg.modules.xxgx.fjys.service.ICsXxCjmbFjysService;
import org.jeecg.modules.xxgx.fjys.service.ICsXxCjmbService;
import org.jeecg.modules.xxgx.fjys.service.ICsXxFjysService;
import org.jeecg.modules.xxgx.fjys.vo.CsXxCjmbVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;


/**
* @Description: 场景模板
* @Author: jeecg-boot
* @Date:   2023-10-09
* @Version: V1.0
*/
@Api(tags="场景模板")
@RestController
@RequestMapping("/xxgx/fjys/csXxCjmb")
@Slf4j
public class CsXxCjmbKzController {
   @Autowired
   private ICsXxCjmbService csXxCjmbService;
   @Autowired
   private ICsXxCjmbFjysService csXxCjmbFjysService;
    @Autowired
   private ICsXxFjysService csXxFjysService;

    /**
     * 取当前用户场景模板
     * @param csXxCjmb
     * @param req
     * @return
     */
   @ApiOperation(value="场景模板-取当前用户场景模板", notes="场景模板-取当前用户场景模板")
   @GetMapping(value = "/queryListByCurUser")
   public Result<List<CsXxCjmbVO>> queryListByCurUser(CsXxCjmb csXxCjmb,
                                                    HttpServletRequest req) {
       String companyId = LoginUserUtil.getLoginUser().getCompanyId();
       List<CsXxCjmb> csXxCjmbList = csXxCjmbService.lambdaQuery().eq(CsXxCjmb::getCompanyId, companyId).list();

       List<CsXxCjmbVO> rtnList = new ArrayList<>();
       csXxCjmbList.forEach(cjmb -> {
           CsXxCjmbVO csXxCjmbVO = new CsXxCjmbVO();
           BeanUtils.copyProperties(cjmb, csXxCjmbVO);
           List<CsXxCjmbFjys> cjmbFjysList = csXxCjmbFjysService.selectByMainId(cjmb.getId());
           List<String> fjysIds = new ArrayList<>();
           cjmbFjysList.forEach(csXxCjmbFjys -> {
               fjysIds.add(csXxCjmbFjys.getFjysid());
           });
           List<CsXxFjys> fjysList = csXxFjysService.listByIds(fjysIds);
           csXxCjmbVO.setFjysList(fjysList);

           rtnList.add(csXxCjmbVO);
       });

       return Result.OK(rtnList);
   }
}
